package pam.web;

import javax.servlet.http.HttpServletRequest;

class MultiPartRequestParser implements IRequestParser {

	public final static int MAX_SIZE = 10 * 1024 * 1024;

	public Parameters parse(HttpServletRequest req) throws WebException {

		Parameters map = null;

//		ConcurrentHashMap parameters = new ConcurrentHashMap();
//
//		/** 文件上传设置 */
//		DiskFileItemFactory factory = new DiskFileItemFactory();
//		factory.setSizeThreshold(4096);
//		ServletFileUpload upload = new ServletFileUpload(factory);
//		upload.setHeaderEncoding(req.getCharacterEncoding()); /* 设置编码与Servlet同步 */
//		// upload.setSizeMax(MAX_SIZE);
//
//		/** 解析数据 */
//		Map result = new HashMap();
//		try {
//			List fileItems = upload.parseRequest(req);
//			for (Iterator it = fileItems.iterator(); it.hasNext();) {
//				FileItem item = (FileItem) it.next();
//				if (item.isFormField()) { /* 简单的表单提交非文件上传 */
//					String key = item.getFieldName();
//					String value = item.getString(req.getCharacterEncoding());
//
//					if (Utils.isNumber(value)) {
//						value = value.replace(",", "");
//					}
//
//					result.put(key, value);
//					continue;
//				}
//
//				if (item.getSize() > MAX_SIZE) {
//					LoggerFactory.getLogger().severe(
//							"文件大小不能超过" + MAX_SIZE / 1024 / 1024 + "MB");
//					throw new WebException("文件大小不能超过" + MAX_SIZE / 1024 / 1024
//							+ "MB");
//				}
//
//				File objFile = new File();
//				objFile.setId(UUIDFactory.getUUID());
//				objFile.setContent(item.get());
//				String fileName = item.getName();
//				if (fileName != null) {
//					fileName = FilenameUtils.getName(fileName);
//					objFile.setTitle(fileName);
//					objFile.setExtName(FilenameUtils.getExtension(fileName));
//				}
//
//				objFile.setSize(item.getSize());
//				result.put(item.getFieldName(), objFile);
//
//				LoggerFactory.getLogger().info(
//						item.getFieldName() + ":" + item.getName());
//				map = new Parameters(result);
//			}
//		} catch (org.apache.commons.fileupload.FileUploadException e) {
//			e.printStackTrace();
//			LoggerFactory.getLogger().severe(e.getMessage());
//			throw new WebException("文件上传异常");
//		} catch (UnsupportedEncodingException ex) {
//			LoggerFactory.getLogger().severe(
//					"UnsupportedEncodingException: 编码异常");
//			throw new WebException("编码异常");
//		}

		return map;
	}
}
